A set of personal computers interconnected on a network can be effectively used as a data conferencing system. In such a system, each conference participant typically comprises a personal computer user having a computer, a screen display, a computer network interface and typically a mouse or cursor control device. Conference participants are linked together by a computer network. This network may comprise either a hardwired local area network (LAN) such as Ethernet, a telephone modem link or other conventional data communications network. Because the conference participants are linked via a computer network, the participants do not need to be located in the same physical space. Rather, an effective conference may be carried out as participants view common information on their local screen displays and manipulate information using their local cursor control devices or other input devices. The conference participants can concurrently communicate with each other via phone lines.
Several problems are present in these prior art conferencing systems. In a typical conferencing application, a group of conference participants linked via a network share common information pertaining to a particular meeting or topic under discussion. By sharing information between conference participants, each participant is able to view and manipulate the information dispersed during the meeting.
At times it is desirable for certain messages to be displayed to all participants of the conference. For example, a conference notification that a new participant has joined the conference is desirable. One prior art way of displaying a notification message is for each computer system to independently display its own dialog box, or dialog, to its screen display. Subsequently some users may use their input devices, such as a mouse, to acknowledge and remove the dialog. This may result in each participant viewing a different screen display from that of the other participants, and this may cause confusion among the participants.
FIG. 1 is a block diagram of the computer system hardware used in a computer system of the computer conference. The computer system 5 comprises a Bus 100 for communicating information between computer system components. These components coupled to Bus 100 include Processor 101, which can be, for example, an i486.TM. or Pentium.RTM. brand microprocessor manufactured by Intel Corporation, Santa Clara, Calif. The i486 and Pentium marks are trademarks of Intel Corporation. Other system components include Random Access Memory (RAM) 102, Read Only Memory (ROM) 103, and mass storage device or disk drive 104. The computer system 5 also includes display device 105 coupled to the Bus 100 for displaying information to a computer user, an alphanumeric input device 106 coupled to the Bus 100 for communicating information and command selections to the Processor 101, a pointing device or cursor control device 107 coupled to the Bus 100 for communicating information and command selections to Processor 101, and a signal generation device 112 coupled to the Bus 100 for communicating command selections to the Processor 101. Display device 105 may be a liquid crystal device, cathode ray tube, or other suitable display device. Alphanumeric input device 106 is typically an alphanumeric or function key keyboard. Pointing device or cursor control device 107 is typically a mouse or trackball device allowing the computer user to dynamically signal the two dimensional movement of a visible symbol (i.e. cursor) on the screen display of display device 105. Many implementations of the cursor control device 107 are well known in the art, including trackball, mouse, joystick, or special keys on the alphanumeric input device 106 capable of signaling movement in a given direction. Signal generation device 112 is typically implemented as a button or switch located on or near the cursor control device 107.
The computer system 5 also includes a communication interface 108. Communication interface 108 is coupled to communication medium 110. Communication interface 108 provides a means for the computer system to communicate with a network of other computer systems. A variety of ways to network computers are well known in the art. These communication media 110 include well known Local Area Networks (LAN) such as Ethernet, Wide Area Networks (WAN), telephone modem links, or other well known and conventional computer networking technologies. The configuration and interconnection of computer system components as illustrated in FIG. 1 is well known to those of ordinary skill in the art.
Computer system 5 is networked to one or more other computer systems 10 via the communication media 110. The other computer systems 10 include hardware similar to that of computer system 5.
In one configuration of a computer conference system, the computer system 5 is a host computer system and the other computer systems 10 are guest computer systems. The host computer system selects certain application programs for sharing with the guest computer systems. The data resides on the host computer system and graphics information corresponding to the data is communicated to the guest computer systems. In another conferencing configuration, shared data may reside on all computer systems.
FIG. 2 is a representation of the interaction of the software and operation systems of the host computer system 5 and the guest computer systems 10. In one conferencing configuration, the host computer system 5 includes a message-driven operating system 220, such as one of the Windows.TM. operating systems developed by Microsoft Corporation of Redmond, Wash. Windows is a trademark of Microsoft, Inc. In this conferencing configuration, the operating system is multitasking such that one task may run for a while, then another task may run for a while, and so on. Each task, or application program, will have an associated context, which may include register information, along with privilege information, segmentation, and/or paging information, as is well-known. Information about tasks and their context can be found in various texts, for example, "Windows.TM. Internals," by Matt Pietrek, published by Addison-Wesley Publishing Co. (1993), in particular, Chapter 3: Modules and Tasks.
The host computer system 5 includes one or more application programs 230-235, which include application code 230a-235a. Application code 230a is associated with an application message queue 230b, application code 231a is associated with an application message queue 231b, and so forth. In one conferencing configuration, application message queues 230b-235b are part of the operating system 220.
Application codes 230a-235a and the application message queues 230b-235b are interactively coupled together. Each time one of the application codes 230a-235a is ready for processing a new message, it requests from the operating system the next message of its associated message queue. The operating system in turn accesses the appropriate application message queue and provides the next message in the appropriate message queue to the corresponding application code.
The host computer system includes a host application sharing engine (HASE) 240, which is an application program. The HASE 240 is coupled to the operating system 220 and display drivers 250.
Each of the guest computer systems 10 include a guest application sharing engine (GASE) 260, an operating system 270, and display drivers 280. The GASE 260 is interactively coupled to the operating system 270, and the operating system 270 is interactively coupled to the display drivers 280. The guest computer systems may also include application programs similar to those of the host computer 5.
The HASE 240 of the host computer system 5 is coupled to the GASEs 260 of the guest computer systems 10 via the communication interfaces 108 of the computer systems and the communications media 110.
In one conferencing configuration, the host computer system 5 selects certain of its application programs for sharing with the guest computer systems 10. The HASE 240 intercepts any updates of these shared application programs to the display drivers 250 and communicates these updates to the GASEs 260 of the guest computer systems 10. The GASEs 260 communicate this information to their display drivers 280 via the guest operating systems 260 such that the guest computer systems 10 all update their display screens. The GASEs 260 also communicate to the HASE 240 any interactions made by the guest systems' user inputs to the shared data. For example, if one of the guest systems add data to or change data in one of the shared application programs, then the GASE communicates the input from the guest system to the HASE so that all display screens of the computer conference can be updated appropriately.
FIG. 3 is an example of a display screen of a host computer system 5 and the corresponding display screens of the guest computers systems 10. FIG. 3 includes three application windows associated with three different applications running on the host computer system. Application 1 (APP1) and application 2 (APP2) are shared applications. Application 3 (APP3) is an unshared application. Thus, only the data from APP1 and APP2 are shared to the guest computer systems.
The display data of the shared applications APP1 and APP2 is displayed to the display screens of the guest computer systems 10. The data of the unshared application APP3 is not displayed to the guest computer screens. In one computer conferencing configuration, a bounding box 300 is associated with the bounds of the shared data of the shared applications. The information within the bounding box 300 is communicated from the host computer system 5 to the guest computer systems 10.
FIG. 4 is an example of a display screen of the host computer system 5 and the display screens of the guest computer systems 10 when the window associated with an unshared application (APP3) overlays the window of a shared application (APP2).
Since the data from APP3 is unshared, the host computer system does not share the data from APP3 with the guest computer systems. However, since APP3 is obscuring a portion of APP2, in one conferencing configuration, this obscuring is displayed on the guest computer systems as a hatched area 320.